using UnityEngine;

namespace ZFramework.Runtime
{
    public interface IUIMgr
    {
        bool AddUIGroup<T>(string uiGroupName, int depth) where T : MonoBehaviour, IUIGroupHelper;

        bool HasUIGroup(string uiGroupName);

        int OpenUI(string uiAssetPath, string uiGroupName, bool pauseCoverdUIForm, object userData);

        int OpenUI<T>(string uiGroupName, bool pauseCoveredUIForm, object userData) where T : UIFormLogic;

        void CloseUI(int serialId, object userData = null);
        
        void CloseUI(IUIForm uiForm, object userData = null);
    }
}
